package com.wg.msshopsp.backendmanagement.shop.service;

import com.wg.msshopsp.backendmanagement.shop.entity.ShopP;

import java.util.List;

public interface ShopService {
    /**
     * 根据用户ID查询店铺及关联的商品、规格、规格值
     * @param userId 用户ID（店家ID）
     * @return 店铺列表（嵌套完整关联数据）
     */
    List<ShopP> getShopsWithProductsByUserId(Integer userId);

    // 新增方法
    /**
     * 新增店铺
     * @param shop 店铺信息（需包含userId、shopName等必填字段）
     * @return 新增的店铺ID
     */
    Integer addShop(ShopP shop);

    /**
     * 更新店铺信息
     * @param shop 店铺信息（需包含id和要更新的字段）
     */
    void updateShop(ShopP shop);

    /**
     * 删除店铺
     * @param shopId 店铺ID
     */
    void deleteShop(Integer shopId);

    /**
     * 根据ID查询店铺
     * @param shopId 店铺ID
     * @return 店铺详情
     */
    ShopP getShopById(Integer shopId);



    /**
     * 根据用户ID及商品条件查询店铺及关联的商品、规格、规格值
     * @param userId 用户ID（店家ID）
     * @param productName 商品名称（模糊查询）
     * @param productType 商品类型（模糊查询）
     * @param productStatus 商品状态（模糊查询）
     * @return 店铺列表（嵌套完整关联数据）
     */
    List<ShopP> getShopsWithProductsByCondition(Integer userId, String productName, String productType, String productStatus);
}
